package com.lagou.scala.test.Q5

import akka.actor.{ActorSystem, Props}

/**
 * 1. Worker 注册到 Master，Master 完成注册，并回复 Worker 注册成功(注册功能)
 * 2. Worker 定时发送心跳，并在 Master 接收到
 * 3. Master 接收到 Worker 心跳后，要更新该 Worker 的最近一次发送心跳的时间
 * 4. 给 Master 启动定时任务，定时检测注册的 Worker 有哪些没有更新心跳，并将其从 hashmap 中删除
 */
object CheckHeart {
  def main(args: Array[String]): Unit = {
    val system = ActorSystem("checkHeartBeat")
    val master = system.actorOf(Props[Master], "master")
    for(i <- 1 to 5) {
      val name = s"worker-$i"
      val worker = system.actorOf(Props(classOf[Worker], master, name), name)
      worker ! Register
    }
  }
}
